import java.util.Scanner;
/**
 * 方法 + 数组
 *  1.递归
 *  2.数组的概念
 */
public class Test {
    /**
     * 数组的概念
     * 1.数组的定义
     * 2.数组的创建和初始化
     * 3.数组的使用和遍历
     */
    /**
     * 数组的使用
     * 1.数组的元素访问
     * 2.数组的遍历
     */
    public static void main(String[] args) {
        /**
         * 数组的遍历
         * for循环 ->for(表达式1;布尔表达式;表达式2) {循环体;}
         * foreach循环->for(用来接收数组的变量 : 数组名) {循环体;}
         */
        int[] array = {1,2,3,4,5};

        //for()
        for(int i = 0;i < array.length;i++) {
            System.out.print(array[i] + " ");
        }

        System.out.println();

        //foreach
        for (int x:array) {
            System.out.print(x + " ");
        }
    }
    public static void main16(String[] args) {
        /**
         * 数组的元素访问
         * 使用下标,从0开始
         * 数组为引用类型,所以可以引用指向对象的方法
         * 数组名.length,求数组元素个数
         * 注:数组不能越界访问.
         */
        int[] array = {1,2,3,4,5};
        System.out.println(array[0]);
//        System.out.println(array[5]);//error,数组不能越界访问
    }

    /**
     * 数组的创建和初始化
     * 数组的创建: 数据类型[] 变量名 = new 数组类型[数组元素个数];
     * 数组的初始化: 静态初始化 动态初始化
     * 注: 如果没有进行初始化,会写为默认值,引用类型默认值为null
     */
    public static void main15(String[] args) {

        /**
         * 数组的创建
         * 数据类型[]是类型,[]不能有数字
         */

        int[] array1 = new int[10];
        String[] array2 = new String[10];

        //数组的初始化
        /**
         * 静态初始化
         * 1.数据类型[] 数组名 = {元素};
         * 2.数据类型[] 数组名 = new int[]{元素};
         * 3.静态初始化会根据{}来计算数组个数
         * 4.12写法本质是一样的,1是2的精简写法
         * 5.静态初始化可以分为两步进行初始化,但是分为两步后,必须使用原本的初始化方法,不能进行精简
         */
        int[] array3 = {1,2,3,4,5};

        int[] array4 = new int[]{1,2,3,4,5};

        /**
         * 动态初始化
         * 1.数据类型[] 数组名 = new int[数组元素个数];
         */
        int[] array5 = new int[10];
    }
    public static void main14(String[] args) {
        /**
         * 数组的定义:相同类型的一组数据的集合
         * 在内存中的空间是连续的
         * 下标访问从0开始
         */
    }
    /**
     * 递归
     * @param args
     * 递归的概念
     * 递归执行过程
     */
    public static void main13(String[] args) {
        /**
         * 递归执行过程
         * 先递 再 归
         * 被调用 -> 接近结束条件 -> 自身又被调用 -> 符合结束条件  -> 依个回归
         */
    }
    public static void main2(String[] args) {
        /**
         * 递归的概念: 方法在执行过程中调用自己
         * 1.将大问题变成小问题(小问题与大问题解法相同)
         * 2.有结束条件(),并不断接近结束条件
         */
    }
    public static void main1(String[] args) {
        /**
         * 比较字符串是否相等
         * equals
         * 包
         * String变量.equals(需要比较的字符串)
         */
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        System.out.println(str.equals("123456"));
    }
}
